/*
 * 二进制加法
 *
 * 题目链接：https://programming.pku.edu.cn/probset/6c33c406908948408786e82906caf024/51fe68c1fe0f4876bbed39efb16ebca3/
 * 作者：lyazj <seeson@pku.edu.cn>
 *
 * 此处为模拟竖式解法，C 语言实现。
 */

#include <stdio.h>
#include <string.h>

int main(void)
{
  int t;
  scanf("%d", &t);

  while(t--) {
    // 输入
    char a[102], b[102];
    scanf("%s %s", a, b);

    // 逆置（你也可以借助临时变量进行交换）
    int la = strlen(a), lb = strlen(b);
    for(int l = 0, r = la - 1; l < r; ++l, --r) a[l] ^= a[r], a[r] ^= a[l], a[l] ^= a[r];
    for(int l = 0, r = lb - 1; l < r; ++l, --r) b[l] ^= b[r], b[r] ^= b[l], b[l] ^= b[r];

    // 相加
    int carry = 0, i;
    for(i = 0; i <= la || i <= lb; ++i) {
      carry += (i < la ? a[i] - '0' : 0) + (i < lb ? b[i] - '0' : 0);  // 注意从 ASCII 码向数字转换
      a[i] = carry % 2 + '0';                                          // 注意从数字向 ASCII 码转换
      carry /= 2;
    }
    if(i > 1 && a[i - 1] == '0') --i;  // 避免前导零，i > 1 判断避免空输出
    a[i] = 0;                          // 终止符，作为字符串使用时一定不要忘记
    la = i;                            // 更新 a 的长度

    // 逆置（你也可以借助临时变量进行交换）
    for(int l = 0, r = la - 1; l < r; ++l, --r) a[l] ^= a[r], a[r] ^= a[l], a[l] ^= a[r];

    // 输出
    puts(a);
  }

  return 0;
}
